<?php
/**
 * Dependency listener interface
 *
 * PHP version 5
 *
 * @category  W
 * @package   Interfaces
 * @author    Olivier Hoareau <olivier@phppro.fr>
 * @copyright 2009 PHPPRO http://www.phppro.fr
 * @license   http://dev.phppro.fr/license PHPPRO
 * @version   SVN: $Id:$
 * @link      http://dev.phppro.fr/projects/wdependency
 */
/**
 * Dependency listener interface
 *
 * @category  W
 * @package   Interfaces
 * @author    Olivier Hoareau <olivier@phppro.fr>
 * @copyright 2009 PHPPRO http://www.phppro.fr
 * @license   http://dev.phppro.fr/license PHPPRO
 * @version   SVN: $Id$
 * @link      http://dev.phppro.fr/projects/wdependency
 */
interface W_Dependency_Listener_Interface
{
    /**
     * Returns all the data
     * 
     * @return array
     */
    public function getData();
    
    /**
     * List all expected events
     * 
     * @return W_Dependency_Listener_Interface
     */
    public function listExpectedEvents();
    
    /**
     * Processes the specified event
     * 
     * @param string $type the event type to process
     * @param array  $data the optional data of the event
     * 
     * @return array list of optional additional files to analyze
     * 
     * @throws RuntimeException if an error occured
     */
    public function processEvent($type,$data=null);
}